/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.controller;

import com.persistencia.domain.Docente;
import com.persistencia.domain.Persona;
import com.service.DocenteService;
import com.service.PersonaService;
import com.service.impl.DocenteServiceImpl;
import com.service.impl.PersonaServiceImpl;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.primefaces.event.SelectEvent;

/**
 *
 * @author kenny
 */
@ManagedBean
@ViewScoped
public class DocenteController {
    private List<Docente> lista = new ArrayList<Docente>();
    private Docente docenteseleccionado;
    private Docente docentenuevo;
    private DocenteService docenteService;
    private Persona personanuevo;
    private PersonaService personaService;
    
    private String codigo="";
    /**
     * Creates a new instance of DocenteController
     */
    public DocenteController() {
        docenteseleccionado = new Docente();
        docentenuevo = new Docente();
        personanuevo = new Persona();
        docenteService = new DocenteServiceImpl();
        personaService = new PersonaServiceImpl();
        
        cargar();
    }
    
    public void cargar(){
        try {
            //docenteseleccionado = new Docente();
            
            //lista = docenteService.obtenerListaDocentes();
            lista = docenteService.buscarDocentes();
            //lista = docenteService.buscarDocentes();
        } catch (Exception ex) {
            Logger.getLogger(DocenteController.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void pasarparametros(SelectEvent event) {
        System.out.println("Entramos");
        docenteseleccionado = (Docente) event.getObject();
        
        
 
    }
    
    public void eliminar(){
        if(docenteseleccionado!=null){
            try {
                System.out.println("Entramos a eliminar");          
                    System.out.println("Docente Seleccioando"+docenteseleccionado.getVCodigo());
                
                    docenteseleccionado.setVEstado("1");
                    docenteService.actualizarDocente(docenteseleccionado);
                    //controladortrabajos.edit(trabajo);
                       
                    FacesMessage msg = new FacesMessage("El Docente se elimino satisfactoriamente.");
                    FacesContext.getCurrentInstance().addMessage(null, msg);
                
                cargar();
            } catch (Exception ex) {
                Logger.getLogger(DocenteController.class.getName()).log(Level.SEVERE, null, ex);
            }
       }else{
            System.out.println("No se ha seleccionado un docente");
            FacesMessage msg = new FacesMessage("Error: Debe Seleccionar un Docente");  
            FacesContext.getCurrentInstance().addMessage(null, msg);
        }
        
    }
    
    public void editar(){
        try {
                
                docenteService.actualizarDocente(docenteseleccionado);
                          
                FacesMessage msg = new FacesMessage("El Docente se elimino satisfactoriamente.");
                FacesContext.getCurrentInstance().addMessage(null, msg);
                //JsfUtil.addErrorMessage(ResourceBundle.getBundle("/Bundle").getString("proyectoCreado"));
                cargar();
        } catch (Exception ex) {
            Logger.getLogger(DocenteController.class.getName()).log(Level.SEVERE, null, ex);
        }       
    }
    
    public void nuevo(){
        try {
            System.out.println("Entramos a crear docente");
            
            
            //personanuevo.setNPrsId(1);
            System.out.println("Nombre "+ personanuevo.getVNombre());
            System.out.println("Apellidos "+ personanuevo.getVApellidos());
            personanuevo.setVGenero("m");
            personanuevo.setVEstado("0");
            personaService.registrarPersona(personanuevo);        
            //docentenuevo.setNPrsId(personanuevo);
            //docentenuevo.setNDcnId(6);
            //System.out.println("Numero Maximo"+ personaService.personaMaxId());
            personanuevo.setNPrsId(personaService.personaMaxId());
            docentenuevo.setNPrsId(personanuevo);
            docentenuevo.setVEstado("0");
            docenteService.registrarDocente(docentenuevo);
            
            FacesMessage msg = new FacesMessage("El Docente se creo satisfactoriamente.");
            FacesContext.getCurrentInstance().addMessage(null, msg);
            docentenuevo = new Docente();
            cargar();
        } catch (Exception ex) {
            Logger.getLogger(DocenteController.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public Docente getDocenteseleccionado() {
        return docenteseleccionado;
    }

    public void setDocenteseleccionado(Docente docenteseleccionado) {
        System.out.println("Entramos a seleccionado a");
        
        this.docenteseleccionado = docenteseleccionado;
        System.out.println("Aqui :"+this.docenteseleccionado.getVCodigo());
        //setCodigo(docenteseleccionado.getVCodigo());       
    }

    public List<Docente> getLista() {
        return lista;
    }

    public void setLista(List<Docente> lista) {
        this.lista = lista;
    }

    public String getCodigo() {
        return codigo;
    }

    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    public Docente getDocentenuevo() {
        return docentenuevo;
    }

    public void setDocentenuevo(Docente docentenuevo) {
        this.docentenuevo = docentenuevo;
    }

    public PersonaService getPersonaService() {
        return personaService;
    }

    public void setPersonaService(PersonaService personaService) {
        this.personaService = personaService;
    }

    public Persona getPersonanuevo() {
        return personanuevo;
    }

    public void setPersonanuevo(Persona personanuevo) {
        this.personanuevo = personanuevo;
    }
    
    
    
}
